# 可以用来做大小写不区分
str1='hello pythonh'
# 返回值是查找值的下标，找片段为首字母的下标，空格也是一位
i = str1.find('h')
print(i)

# 返回值是查找值的下标，找片段为首字母的下标，空格也是一位
# 下行表示找‘h’，从下标为3开始找起，找到下标为10时结束
i = str1.find('h',3,10)
print(i)

# 从右向左，找第一位，如果找不到，会抛出异常
i = str1.find('ho')
print(i)

# rfind 从右向左，找第一位，如果找不到，抛出-1
i = str1.rfind('h')
print(i)

# rindex 从右向左，找第一位，如果找不到，抛出异常
i = str1.rindex('h')
print(i)



# =============字符串大小写转换==================
# 转小写
print(str1.lower())

# 返回值转大写，不影响原字符串
print(str1.upper())
print(str1)

# 对每个首字母大写
print(str1.title())


str2 = 'hello java'
# startsWith 判断是否以相同内容开头
print(str2.startswith('he'))

# endsWith 判断是否以相同内容结束
print(str2.endswith('ava'))

# isspace 判断字符串是不是空格，是返回Ture
print(''.isspace())

# isdigit 判断全部是不是数字，是返回Ture
print('4564'.isdigit())

# isalpha 判断是不是字母不包括符号，是返回Ture
print('flafwDF'.isalpha())

# isalnum 判断是不是字母或数字，是返回Ture
print('kcnj556'.isalnum())



# ===============分割函数===========================
# partition 将字符串的指定字符串分割成三个部分,包括空格
# 没找到会加两个空的字符串在末尾，以元组的方式返回
str3 = 'this is my dog yes or no'
t1 = str3.partition('my')
print(t1)

# rpartition 从右到左，将字符串以指定字符串分割成三个部分
# 以元组的方式返回，返回顺序相同，找不到以原样列表方式返回
t2 = str3.rpartition('is')
print(t2)

# split 按指定的字符串将字符串分割成多个部分，以列表的形式返回
t3 = str3.split(' ')
print(t3)



# count 返回指定字符串出项的次数
print(str3.count(' ',4,9))

# join 以定义的某个符号对列表中的内容进行连接
joinStr = '_'
print(joinStr.join(t3))

# replace 替换指定字符串(被替换数，替换数，替换次数)
str3 = str3.replace('dog','big')
print(str3)

# capitalize 将字符串首字母大写
print(str3.capitalize())